Enhanced consumer device validation

ABSTRACT

Unknown devices may be bound to an identity using a four step process that involves trusted relationships only between known partner entities and a known user attribute. The identity may be an account, such as a personal account number (PAN). The PAN may be abstracted using a token for use with the device. The unknown device may first be enrolled at a service to establish a cryptographically verifiable identity. A binding request for the enrolled device may be sent to an issuer of the PAN resulting in the issuer generating a challenge. After a successful authentication of the challenge at the token service provider, the binding of the token to the device is complete.

CROSS-REFERENCE TO RELATED APPLICATION

This application claimed the benefit under 35 U.S.C. § 119(e) of U.S. provisional patent application No. 62/824,796 filed on Mar. 27, 2019.

BACKGROUND

The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.

An individual has never had more choices for presenting his or her identity in an arm's length interaction. That is, in a social media interaction, when traveling, or in a consumer transaction, the individual may confirm their identity using a variety of instruments such as a photo identification card, a financial institution card, a cell phone, a tablet, a smartwatch, or other personal device. In many cases, the individual may want each instrument to have its own separate identity but for each to ultimately be bound to the individual. A driver's license has this identity bound by the state issuing the license from a secure facility, but creating this binding on a generic consumer device after the device is in public use is problematic.

SUMMARY

In an embodiment, a process for binding a consumer identity to a device involves a separate device enrollment and device authentication using an out-of-band challenge process that allows the device to be bound to an identity of the owner/user. In the case of a financial instrument, a token representing the actual financial instrument may be used as the identification reference. An issuer and the token service provider are assumed to have a trusted relationship, at least at the level of shared cryptographic keys.

BRIEF DESCRIPTION OF THE DRAWINGS

The figures depict a preferred embodiment for purposes of illustration only. One skilled in the art may readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.

FIG. 1 is a block diagram of a system supporting enhanced consumer device validation in accordance with the current disclosure;

FIG. 2 is a sequence diagram illustrating a first use case of enhanced consumer device validation;

FIG. 3 is another sequence diagram illustrating a first use case of enhanced consumer device validation;

FIG. 4 is yet another sequence diagram illustrating a first use case of enhanced consumer device validation;

FIG. 5 is flow diagram of a method of performing enhanced consumer device validation.

DETAILED DESCRIPTION

Electronic devices capable of directed actions on behalf of a user are proliferating. Purchases may be made not just from computers/laptops or cell phones, but from watches, smart speakers, automobiles, refrigerators, and more. In the case of some devices, keys installed at the time of manufacture or sale allow specific trust relationships to be established with specific endpoints, such as a cell phone service provider. However, establishing trust with other third parties that are not provisioned in a device prior to delivery to a user can be more difficult. As a specific example, how can a credit card issuer bind a financial instrument to someone's refrigerator so that the issuer has an assurance that the appliance is acting on behalf of the owner of the financial instrument. In other words, there is a desire to validate that the financial instrument owner is tied to the device in question.

The system and methods described here allow such a binding to occur for various use cases and require only minimal prerequisites such as a relationship between the issuer and the user/card holder as well as a trust relationship between the issuer and a token service provider. A wallet account and associated wallet application may be participants in the process. An issuer application on the user's device may also be a participant in some use cases.

For the following discussion, a smart phone binding to a personal account of the user will be used for the sake of simplicity and clarity. Turning to FIG. 1, a block diagram of a system 10 illustrates exemplary participants in the enhanced consumer device validation process. A user device 12 may be in communication with a wallet service 14 and an issuer 18. A token service provider 16 may be in communication with the wallet service 14 and the issuer 18. The token service provider 16 may act as a service to generate tokens and maintain an association between the generated token and the actual personal account number (PAN) of the user 20.

The connection between the token service provider 16 and the issuer 18 may be secure and/or involve shared keys between the two entities. Either asymmetric or symmetric keys may be used with slightly different processes. A user 20 may be in communication with the user device 12. In several use cases, the participation of the user 20 may involve selection of a contact method as well as relaying a challenge response. The various communication channels may include public and private networks. The steps described below reduce the risk of eavesdropping and man-in-the-middle attacks while allowing device binding with minimal relationship assumptions.

The user device 12 may have installed and available a wallet application 22 that corresponds with the wallet service 14. The wallet application may store credentials for the user such as account data, address information, etc. The wallet application may have access to or separately contain cryptographic tools 26. While in communication with the wallet service 14, the wallet application 22 may have access to purchase histories, special promotions, and account maintenance features. An issuer application 24 may be in communication with the issuer 18. The issuer application 24 may allow the user 20 to view accounts, transfer funds, pay bills, etc., via its connection with the issuer 18. Cryptographic tools 26 may allow the user device 12 to perform basic cryptographic functions including key generation, signing, signature verification, and encryption/decryption. A user interface 28 may include a display and keyboard or touchscreen that allows presentation of data to the user 20 and allows the user to input data and make selections.

FIG. 2 illustrates a sequence diagram 40 for a first use case of the enhanced consumer device validation process. This use case is directed to a process using contact with the user 20 via an out-of-band text message, email, or other communication.

Enroll Device

In step 100 the wallet app 22 generates key pairs: one for authentication key (K_DID) and one for transport key K_TR (optional). K_DID may be used for device authentication. K_TR may be needed if ever there is a need for the token service 16 to send secure payload to the device 12 so wallet service 14 can't decrypt it. The keys are passed to the wallet service 14 at step 102 along with a device identifier (ID) of the device 12. In this discussion, key.PK is a public key, and key.SK is a secret key of an asymmetric (PKI) key pair.

In a prior art process similar to this, the wallet service 14 creates certificates for the two keys (K_DID.PK and K_TR.PK). In this case, it's not needed. Instead, the wallet app 22 creates a certificate: sign K_TR.PK with K_DID.SK. K_DID does not need a certificate. The wallet service 14 sends a request to enroll the device 12 to the token service 16 at step 103.

In step 104, the token service 16 links the device_id to K_DID.PK (and optionally K_TR.PK). If K_TR.PK comes in the request, it shall come in the form of the certificate. The token service 16 validates the signature using K_DID.PK. K_DID is not being validated at this point. A response is sent back to the wallet service 14 at step 105.

At step 106, the wallet service 14 encrypts a payload including user PAN data with the token service public key. The token service 16 creates the requested token at step 107 and forwards the token to the issuer 18 at step 108 as well as sending the token ID (TokenID) to the wallet service 14 at step 109 which then forwards that to the wallet app 22 at step 110.

Binding Request

At steps 111-113, device binding is initiated with a device signed binding request (device_id, TokenID, nonce, client_reference, timestamp) with K_DID.PK. At step 114, the token service 16 validates the signature using K_DID.PK and forwards the request to the issuer 18.

Challenge

The issuer 18 initiates a process a step up authentication that requires the user provide additional proof as being a party to the current process. In an embodiment, the issuer may request a channel by which the issuer can send a challenge. In some cases, the choices may be a mobile device number to which a text message can be sent or an email account to which an email can be sent. The step up options may be masked so that the user would know what is being referred to but the intermediary handlers will not recognize the choices. For example, a message may include “send to xxx-xxx-0785” or “email xxx38@gmail.com.” After relaying the message through steps 115, 116, and 117, at step 118 the user may be presented with the choices at which to receive the challenge. At step 119, the user may make a selection.

At step 121 the wallet app 22 signs a payload with K_DID.SK. The payload may include the device_id, nonce, client_reference, timestamp, etc. At step 122 an application program interface may allow submission of the payload to the token service 16. The token service 16 may validate the signature using K_DID.PK and generate a one-time passcode “otpValue” at step 123. At step 124 the otpValue may be shared with the issuer 18 so that the issuer can contact the user 20 via the selected contact mechanism and pass the otpValue to the user at step 125. At step 126 the user 20 enters the otpValue into the wallet app 22. In another embodiment, the wallet app 22 may get the value directly from the SMS text message.

Authentication

At step 127, the device gets the otpValue, creates payload consisting of the otpValue and a portion of K_DID.PK, and encrypts the result with the public key of the token service 16 and signs it with K_DID. The encrypted, signed payload is sent to the wallet service 14 at step 128 and is forwarded to the token service 16 at step 129.

At step 130, the token service 16 validates the signature using K_DID.PK, decrypts the payload using the token service secret key (SK), and then validates that the payload contains a portion of the same key, K_DID.PK, used for signature validation. This ensures the same entity that encrypted the payload signed it, so the encrypted payload can't be stolen, signed and submitted for verification by an adversary. If the signature is correct for a given device and the otpValue matches the one that was generated for a given client, the challenge is successful and the binding is complete. Exemplary computer instructions for performing step 130 is provided below:

public OtpValueBO decryptEncOtpValue(StepUpVerificationRequestBO requestBO) throws CbpProcessingException { if (requestBO == null || StringUtils.isBlank(requestBO.getEncOtpValue( ))) { // encOtpValue is an optional field return null; } TokenInfoBO tokenInfoBO = requestBO.getTokenInfo( ); DMSMessageBO dmsMessageBO = dmsMessageService.getDeviceCertificatesAndProfile(tokenInfoBO.getDigitalWall etID( ), tokenInfoBO.getDeviceId( )); OtpValueBO otpValueBO = encryptionService.verifySignatureAndDecryptRSA(requestBO.getEncOtpValue( ), dmsMessageBO, OtpValueBO.class); if (!featureToggleService.isFeatureEnabled(FeatureToggleFlags.validateEncOtpDi sabled) && otpValueBO != null) { encryptionService.validateCertIdAgainstDeviceCert(dmsMessageBO.getC ertificateFromDeviceCerts(CertUsage.INTEGRITY.getValue( )), otpValueBO.getCertID( )); } return otpValueBO; }

FIG. 3 illustrates a second use case of enhanced consumer device validation involving communication between the issuer app 24 and the wallet app 22 on the user device 12. Steps 200-220 correspond with steps 100-120 of the previous example. At step 221, the wallet app 22 may authenticate to the issuer app 24, and at steps 222-223 the issuer app 24 may authenticate the user using a previously established protocol. Then, step 224 may include the issuer app 24 sending a request for payload to the issuer 16. The issuer 16 may create a payload including the PAN, an authcode, and a date at step 225. At step 226 the issuer 18 encrypts the payload with key shared between issuer 18 and the token service 16, which wallet service 14 does not have. At step 229 the wallet app 22 may receive the payload, sign it with K_DID.SK and encrypt the result with the token service public key and sends it to the wallet service 14 at step 230.

Step 231 involves the wallet service 14 validating the wallet app signature, which is a gating activity to sending the rest of the payload to the token service. Step 232 has the token service 16 validate the device signature and at step 233 decrypts the payload with the issuer key. The issuer key is not in the possession of the wallet service 14. When the payload decrypts into a recognized format, at step 234, the token service 16 checks the authorization code for correctness of form and format to complete the authentication process. The actual value of the authentication code may not need to be validated because the other signature and decryption steps create enough trust that the user may be bound to the device.

FIG. 4 illustrates another use case similar to that of FIG. 2. In this exemplary case, the user may contact the issuer out of band to complete the challenge.

As above, steps 300-320 correspond to steps 100-120 of the process illustrated in FIG. 2. At step 321, the wallet generates a one-time passcode optValue and signs it with K_DID.SK, and encrypts the result with the token service public key. This payload is sent to the wallet service 14 at step 322 and forwarded to the token service at step 323. The token service 16 decrypts the otpValue using the wallet service key and re-encrypts the otpValue with the issuer key at step 324. At step 325 the token service 16 sends the encrypted otpValue to the issuer, where the issuer decrypts and stores the optValue for a subsequent step.

The wallet app 22 may show the otpValue to the user via the user interface 28 at step 326. The user may then call or contact the issuer 18 via a website at step 327. At step 328 the issuer customer service operator (human or robot) may validate the user with previously provisioned security questions. Once the user identity is validated, the user may present the optValue which is confirmed at step 328. An assumption is that a hacker isn't present because the hacker would not have access to the device 12, nor would a hacker be able to pass the security challenge. Since the otpValue is a one-time code, this process is not susceptible to a replay attack. Once the optValue is confirmed at step 328, the issuer 18 may inform the token service 16 of the successful authentication at step 329 so that the binding may be completed.

A method 400 of enhanced consumer device validation is illustrated in FIG. 5. In this method, a financial instrument of the user may be bound to a device of the user. At block 402, a device is enrolled with a first party, for example, a token service 16. At block 404, the enrolled device may generate a request for binding. For example, the binding request may be forwarded to an issuer 18 of a financial instrument, such as a credit card. The issuer 18 may generate a challenge at block 406 that is validated at block 408. If the validation is successful, the device and the selected financial instrument are bound at block 410. If the validation fails, at block 412, the process is halted and no binding is created.

At least one technical effect of the process described above is the layered approach to signatures and encryption to prevent man-in-the-middle attacks and eavesdropping while allowing participants to separately use established trust relationships to build to separate conclusions of the device identity and its control by the user in question which allows the binding to occur. In the various use cases, the out-of-band contact with the user may be presented in different forms with the validation of the challenge occurring in different systems. This creates a significant level of flexibility relative to system availability and involvement for addressing the issue of binding devices.

A system and method in accordance with the current disclosure benefits both users and issuers. Users may bring a virtually unlimited number of unknown devices into use with a minimum level of interaction with other parties. The interaction a user is required to perform is with a party already known and trusted. The above system elements and methods allow the user to establish separate bindings, with separate tokens, for each device he or she owns even though each device (and token) resolve to the same financial instrument, e.g., a credit card. This benefits not only the user 20 but also the issuer 18 by creating separate logical and financial identities for each device a user commissions, reducing the risk of fraud and improving response effectiveness should one of the device's tokens be compromised.

The figures depict preferred embodiments for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.

Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for the systems and methods described herein through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the systems and methods disclosed herein without departing from the spirit and scope defined in any appended claims. 

1. A method of binding a device to an identity, the method comprising: enrolling the device with a service; generating an identity alias for the device; requesting a binding of the identity alias with a third party; generating a challenge responsive to the binding request, the challenge being provided by the third party to the device; authenticating the challenge; and binding the device to the identity alias at the service.
 2. The method of claim 1, wherein the identity alias is a tokenized personal account number (PAN).
 3. The method of claim 2, wherein the third party is an issuer associated with the PAN.
 4. The method of claim 1, wherein authenticating the challenge comprises authenticating the challenge at the third party.
 5. The method of claim 1, wherein authenticating the challenge comprises authenticating the challenge at the service.
 6. The method of claim 1, wherein enrolling the device with the service comprises: self-generating a key at the device; sending a device identifier and the key to a wallet server; sending an enrollment request from the wallet server to the service, the service capturing the device identifier and the key; sending a token request from the wallet server to the service, the token request including a PAN; creating a token at the service; and sending the token to the wallet server and sending the token to the third party.
 7. The method of claim 1, wherein authenticating the challenge comprises: generating a one-time passcode (OTP) at the device; signing and encrypting the OTP at the device to generate an SEOPT; sending the SEOTP from the device to the service; decrypting the SEOTP at the service to recover the OTP; encrypting the OTP with a third party key to create an IOTP; sending the IOTP to the third party; decrypting the IOTP at the third party to recover the OTP; displaying the OTP at the device; receiving the OTP at the service from a user of the device; comparing the recovered OTP with the OTP received from the user; and responsive to the recovered OTP matching the OTP received from the user, sending a binding approval from the third party to the service.
 8. The method of claim 1, wherein authenticating the challenge comprises: receiving an encrypted authorization code from the third party at a third party application running on the device, the authorization code encrypted with a third party key; passing the encrypted authorization code from the third party to a service application running on the device; receiving the encrypted authorization code at the service; decrypting the encrypted authorization code at the service using the third party key; and matching the decrypted authorization code with a known authorization code.
 9. A method of binding a device to an identity, the method comprising: enrolling the device with a token service provider; generating a token for the device, the token corresponding to a personal account number (PAN) of a device owner; requesting a binding of the token to the device; generating, at the token service provider, a challenge responsive to the binding request; sharing the challenge with an issuer associated with the PAN; presenting the challenge out-of-band to the device via a step up offered by the issuer; sending the challenge from the device to the token service provider; authenticating the challenge at the token service provider; and binding the device to the token at the token service provider.
 10. The method of claim 9, wherein enrolling the device with the token service provider comprises: self-generating a key at the device; sending a device identifier and the key to a wallet server; sending an enrollment request from the wallet server to the token service provider, the token service provider capturing the device identifier and the key; and sending a token request from the wallet server to the token service provider, the token request including the PAN.
 11. The method of claim 10, wherein enrolling the device with the token service provider further comprises: creating a token at the token service provider; and sending the token to the wallet server and sending the token to the issuer.
 12. The method of claim 9, wherein authenticating the challenge comprises: generating a one-time passcode (OTP) at the device; signing and encrypting the OTP at the device to generate an SEOPT; sending the SEOTP from the device to the token service provider; decrypting the SEOTP at the token service provider to recover the OTP; encrypting the OTP with an issuer key to create an IOTP; sending the IOTP to the issuer; decrypting the IOTP at the issuer to recover the OTP; displaying the OTP at the device; receiving the OTP at the token service provider from a user of the device; comparing the recovered OTP with the OTP received from the user; and approving the binding responsive to the recovered OTP matching the OTP received from the user.
 13. The method of claim 9, wherein the identity is a financial instrument of the user.
 14. A system for binding a device to an identify, comprising: the device; a third party; and a service configured to generate an identity alias for the device, receive from the device a request for binding the identity alias with the third party, and forward the request to the third party; wherein the third party is configured to generate a challenge to the device responsive to the binding request; and wherein at least one of the third party and the service is configured to participate in authenticating the challenge, the device being bound to the identity upon successful authentication of the challenge.
 15. The system of claim 14, wherein the identity is a financial instrument of the user.
 16. The system of claim 15, wherein the service is a token service provider, and wherein the identity alias is a tokenized personal account number (PAN).
 17. The system of claim 15, wherein the third party is an issuer associated with the PAN.
 18. The system of claim 17, wherein the device is enrolled with the token service provider.
 19. The system of claim 18, wherein authenticating the challenge comprises: generating a one-time passcode (OTP) at the device; creating a payload at the device including the OTP and a portion of a public key of the device, and signing and encrypting the payload at the device; sending the signed and encrypted payload from the device to the token service provider; decrypting the signed and encrypted payload at the token service provider to recover the OTP, and validating that the payload contains a portion of the public key of the device; encrypting the OTP with an issuer key to create an IOTP; sending the IOTP to the issuer; decrypting the IOTP at the issuer to recover the OTP; displaying the OTP at the device; receiving the OTP at the token service provider from a user of the device; comparing the recovered OTP with the OTP received from the user; and approving the binding responsive to the recovered OTP matching the OTP received from the user.
 20. The method of claim 18, wherein authenticating the challenge comprises: receiving an encrypted authorization code from the issuer at an issuer application running on the device, the authorization code encrypted with an issuer key; sending the encrypted authorization code to the token service provider; decrypting the encrypted authorization code at the token service provider using the third party key; and matching the decrypted authorization code with a known authorization code. 